import React, { useMemo } from 'react';
import { TreeSelect } from 'antd';

import { SchemaManageAPI } from '../../type';
interface IPropsType {
  id?: string;
  value?: any;
  onChange?: any;
  opt?: SchemaManageAPI.ISearchList;
  type?: string;
}
// 处理树数据
// const orgTreeData = (data: any[]): any[] => {
//   return data?.map((item: any) => {
//     return {
//       ...item,
//       title: (
//         <div>
//           {getDeptPosTreeIcon(String(item?.textType))}
//           {item?.text}
//         </div>
//       ),
//       searchtitle: item?.text,
//       key: item?.id,
//       value: item?.id,
//       children:
//         item?.children && item?.children?.length > 0
//           ? orgTreeData(item?.children)
//           : null,
//       disabled: item?.textType == '2' ? false : true,
//     };
//   });
// };
export const SearchTreeCompanySelect: React.FC<IPropsType> = (props) => {
  const treeData = useMemo(() => {
    let loopTree = (dataTree: any) => {
      return dataTree?.map((item: any) => {
        return {
          title: <div>{item?.name || item?.text}</div>,
          searchTitle: item?.name || item?.text,
          key: item?.id,
          value: item?.id,
          disabled: item?.textType == '2' ? false : true,
          children:
            item?.children && item?.children?.length > 0
              ? loopTree(item?.children)
              : null,
        };
      });
    };
    return loopTree(props?.opt?.dataSource);
  }, [props?.opt?.dataSource]);

  return (
    <TreeSelect
      onChange={props?.onChange}
      value={props?.value}
      allowClear={props?.opt?.allowClear}
      placeholder={props?.opt?.placeholder}
      // treeData={props?.opt?.placeholder ? orgTreeData(treeData) : []}
      treeData={props?.opt?.placeholder ? treeData : []}
      treeNodeFilterProp={'searchTitle'}
      showSearch={true}
      treeCheckable={true}
    />
    // <>
    //   <Col
    //     md={props?.opt?.md ?? 4}
    //     sm={props?.opt?.sm ?? 24}
    //     key={handColKey()?.[0]}
    //   >
    //     <Form.Item name={'ceshi1'}>
    //       <Input />
    //     </Form.Item>
    //   </Col>
    //   <Col
    //     md={props?.opt?.md ?? 4}
    //     sm={props?.opt?.sm ?? 24}
    //     key={handColKey()?.[1]}
    //   >
    //     <Form.Item name={'ceshi2'}>
    //       <Input />
    //     </Form.Item>
    //   </Col>
    // </>
  );
};
